package com.koala.javaBase.senior.day14;

import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * Create by koala on 2021-01-06
 *
 * Collections:操作Collection、Map的工具类
 *
 * reverse(List)：反转 List 中元素的顺序
 * shuffle(List)：对 List 集合元素进行随机排序
 * sort(List)：根据元素的自然顺序对指定 List 集合元素按升序排序
 * sort(List，Comparator)：根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
 * swap(List，int， int)：将指定 list 集合中的 i 处元素和 j 处元素进行交换
 *
 * Object max(Collection)：根据元素的自然顺序，返回给定集合中的最大元素
 * Object max(Collection，Comparator)：根据 Comparator 指定的顺序，返回给定集合中的最大元素
 * Object min(Collection)
 * Object min(Collection，Comparator)
 * int frequency(Collection，Object)：返回指定集合中指定元素的出现次数
 * void copy(List dest,List src)：将src中的内容复制到dest中
 * boolean replaceAll(List list，Object oldVal，Object newVal)：使用新值替换 List 对象的所有旧值
 *
 */
public class CollectionsTest01 {

    @Test
    public void test1(){
        List list = new ArrayList();
        list.add(123);
        list.add(43);
        list.add(765);
        list.add(765);
        list.add(765);
        list.add(-97);
        list.add(0);

        System.out.println(list);

        //Collections.reverse(list);
        //Collections.shuffle(list);
        //Collections.sort(list);
        Collections.swap(list,1,2);
        System.out.println(list);
    }

    @Test
    public void test2(){
        List list = new ArrayList();
        list.add(123);
        list.add(43);
        list.add(765);
        list.add(765);
        list.add(765);
        list.add(-97);
        list.add(0);

        int frequency = Collections.frequency(list, 123);
        System.out.println(frequency);
    }

    @Test
    public void test3(){
        List list = new ArrayList();
        list.add(123);
        list.add(43);
        list.add(765);
        list.add(-97);
        list.add(0);

        //错误的：
        //报异常：IndexOutOfBoundsException("Source does not fit in dest")
        /*List dest = new ArrayList();
        Collections.copy(dest,list);*/

        //正确的：
        List dest = Arrays.asList(new Object[list.size()]);
        Collections.copy(dest,list);

        System.out.println(dest);
    }

}
